Computer systems such as network servers, personal computers, PDAs, mobile phones, video games, scientific instrumentation, industrial robotics, medical electronics, and so on, rely heavily on the capacity and throughput of their system or main memories and the speed of accessing them for optimal performance. Currently, dynamic random-access memory (DRAM) is commonly used as system memory. DRAM is a type of random-access memory that stores each bit of data in a separate capacitor in an integrated circuit. The capacitor can be either charged or discharged so that these two states are taken to represent the two values of a bit, conventionally called 0 and 1. Since capacitors leak charge, the information eventually fades unless the capacitor charge is refreshed periodically. Because of this refresh requirement, it is a dynamic memory as opposed to SRAM and other static memory.
The structural simplicity of DRAM allows DRAM chips to reach very high densities, because billions of transistor and capacitor pairs can fit on a single memory chip. On the other hand, DRAM is volatile memory—it loses its data quickly when power is removed. Compared to Flash memory, which is a type of electronic non-volatile computer storage medium that can be electrically erased and reprogrammed, DRAM is also much more expensive. For example, high density DRAM can cost as much as 10 times more than high-performance Flash devices. Furthermore, Flash chips can have much higher density than DRAM chips, allowing a same-sized memory module to pack much more to reach a much larger memory capacity.
There are two main types of Flash memory, the NAND type and the NOR type, which are named after the NAND and NOR logic gates. The NOR type allows a single machine word (byte) to be written or read independently. NAND type Flash memory may be written and read in blocks (or pages), which are generally much smaller than the entire device. NAND Flash also has reduced erase and write times, and requires less chip area per cell, thus allowing greater storage density and lower cost per bit than NOR Flash. Moreover, NAND Flash also has up to ten times the endurance of NOR Flash. Thus, NAND Flash has been more widely used than NOR Flash.
Besides its advantages, Flash memory also has certain limitations, which pose many challenges to make it useful as main memory. One limitation of Flash memory, especially NAND Flash, is that it can only be erased a “block” at a time. Erasing a block generally sets all bits in the block to 1. Starting with a freshly erased block, any location within that block can be programmed a byte or a word at a time in a random access fashion. However, once a bit has been set to 0, only by erasing the entire block can it be changed back to 1. In other words, Flash memory does not offer arbitrary random-access rewrite or erase operations.
Another limitation is that Flash memory has a finite number of program-erase cycles (typically written as P/E cycles). Most commercially available Flash products are guaranteed to withstand around a certain number of cycles (e.g., 100,000 P/E cycles) before the wear begins to deteriorate the integrity of the storage. Some chip firmware or file system drivers perform the so-called wear leveling technique by counting the writes and dynamically remapping blocks in order to spread write operations between sectors. For portable consumer devices, these wear-out management techniques typically extend the life of the Flash memory beyond the life of the device itself, and some data loss may be acceptable in these applications. For high reliability data storage, however, it is not advisable to use Flash memory that would have to go through a large number of programming cycles.